A complex software product is understood to mean particularly a software program which is tailored to one specific application, one specific application area or one specific professional group and combines different functionalities within this tailoring. The software product is therefore used to supervise or control a complex multilayer system, so that a universal software product can be used to handle a wide variety of requirements within a complex system uniformly and different software products are not required.
In the medical sector, for example in the clinical application area or in the area of doctors' practices, a wide variety of requirements are implemented within a complex software program. The requirements range from managing patient-specific data, for example, to assisting in medical diagnosis or medical therapy. Specifically in the area of medical diagnosis/therapy using imaging methods, for example using X-ray beams or magnetic fields, software support is an absolute necessity.
Such software products are usually developed and provided by the appliance manufacturers of medical appliances and are supplied with the appliances. The appliance manufacturers also appear as full system providers in the medical sector and, by way of example, also provide a comprehensive, complex software product mapping the operation of a clinic. This product also incorporates a clinical information system, for example, in which not only administration-related data but also, in particular, patient-specific data, such as diagnostic pictures, diagnoses produced by doctors and other reports are stored uniformly and hence can be retrieved by any authorized person at any time.
Further developments are continually occurring both on the hardware side of the medical appliances and on the software side for supporting the individual appliances. A complex software product therefore needs to be matched to the further developments in the course of time. Also, new appliances are picked up in the course of time whose appliance-specific software needs to be integrated into the complex software product. The methods for picture generation or else picture evaluation are also continually being refined and improved, which means that new algorithms are repeatedly being provided which are used for first-time evaluation of the measurement data ascertained using an X-ray diagnostic appliance, for example, better or in respect of a specific medical question. Different evaluation models are also usually provided which, by way of example, allow the extraction of two-dimensional picture data or the extraction of three-dimensional picture data from measurement data obtained. In the same way, different program modules may be provided for different actuation of the individual medical appliances.
For a multiplicity of reasons, it is therefore necessary to adapt and/or extend a software product installed at a customer's premises (e.g. clinic, doctors' practice) in order to provide a new application functionality.
The complexity of the respective software product, which may also differ in form from customer to customer, means that the smoothest possible extension of an existing system by new application functionality requires knowledge of the existing software product installed with the customer. For the software provider dealing with the customer to obtain knowledge about the software product installed with the customer, the customer-specific data are usually requested and laboriously compiled in advance of an extension. In this context, however, there is the problem that the wealth of different information about the respective customer-specific system means that it is possible to obtain an overview about the complex software product actually used by the respective customer only with difficulty or not all.
In addition, it is also of particular importance for the software provider to have precise knowledge about the interaction of the individual parts of the software product when an existing software product is developed further, so that new functionalities can be incorporated and tested as part of software further development before this new functionality is provided for the customer.